﻿namespace WSBancoIdeal
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Script.Serialization;
    using System.Web.Script.Services;
    using System.Web.Services;
    using Data;

    /// <summary>
    /// Summary description for ParametrosWS
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    //// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class ParametrosWS : System.Web.Services.WebService
    {
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetOficinas()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Oficinas.AsEnumerable()
                         select new ResultadoParametro
                         {
                             Valor = Convert.ToString(c.IdOficina), Texto = c.Nombre, Descripcion = c.Nombre + " ciudad: " + c.Ciudad
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTiposDocumento()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "TipoDocumento"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTipoSolicitud()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "TipoSolicitud"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTipoVinculo()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "TipoVinculo"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetEstadoCivil()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "EstadoCivil"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetNivelEstudios()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "NivelEstudios"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTipoDeVivienda()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "TipoDeVivienda"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetDondeRecibirCorrespondencia()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "Dondemail"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetSituacionLaboral()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "situaLaboral"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        /// <summary>
        /// Obtiene los paramentros con valor y texto de las opciones Sí y No para utilizarlas en un datasource
        /// </summary>
        /// <returns></returns>
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetSino()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "Sino"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTipoMovimiento()
        {
            List<ResultadoParametro> result = new List<ResultadoParametro>();
            using (Banking_MSEntities bd = new Banking_MSEntities())
            {
                var a = (from c in bd.Parametroes
                         where c.Categoria == "TipoMovimiento"
                         select new ResultadoParametro
                         {
                             Valor = c.Valor, Texto = c.ValorParaMostrar, Descripcion = c.Descripcion
                         }).ToList();
                result = a;
            }

            return new JavaScriptSerializer().Serialize(result);
        }
    }

    public class ResultadoParametro
    {
        public string Valor
        {
            get;
            set;
        }

        public string Texto
        {
            get;
            set;
        }

        public string Descripcion
        {
            get;
            set;
        }
    }
}